
import pygame

from plane_sprites import *


class PlaneGame(object):
    '''飞机大战主游戏'''
    def __init__(self) -> None:
        print("游戏初始化")
        # 1 创建游戏窗口 
        self.screen = pygame.display.set_mode(SCREEN_RECT.size)
        
        # 2 创建游戏时钟 
        self.clock = pygame.time.Clock()
        # 3 调用私有方法，创建精灵和精灵组
        self.__create_sprites()
    def __create_sprites(self):
        '''创建背景精灵和精灵组'''
        bg1 = BackGround("images/background.png")
        bg2 = BackGround("images/background.png")
        bg2.rect.y = - bg2.rect.height
        self.back_group = pygame.sprite.Group(bg1,bg2)
        
    def start_game(self):
        print("游戏开始")

        while True:
            
            # 1 设置刷新帧率
            self.clock.tick(FPS_MAX)
            # 2 事件监听
            self.__event_handler()          
            # 3 碰撞检测   
            self.__check_collide()       
            # 4 更新绘制精灵组
            self.__update_sprites()
            # 5 更新屏幕显示
            pygame.display.update()
            
           
        # time.sleep(5)
    def __event_handler(self):
        for event in pygame.event.get():
        # 判断事件类型--退出事件
            if event.type == pygame.QUIT:
                PlaneGame.__game_over()
                
    def __check_collide(self):
        pass
    def __update_sprites(self):
        self.back_group.update()
        self.back_group.draw(self.screen)
    @staticmethod
    def __game_over():
        print("退出游戏。。。")
        # 卸载所有模块
        pygame.quit()
        # 调用exit方法终止当前程序
        exit()
if __name__ == '__main__':
    # 创建游戏对象
    game = PlaneGame()
    # 开始游戏
    game.start_game()
